The present invention relates to a system and method of receiving and decrypting encrypted data using a key for decryption that is generated from a key used for encryption that is changed periodically.
Recently, personal computers, digital cameras, audio electronics and other such units have been developed which can send data to each other through high data rate buses, such as that specified in IEEE-1394, more commonly known as FireWire. It is said that electronic units accepting high data rate buses will become commonplace.
When data is transferred between such electronic units, it is necessary to prevent the data transferred through an IEEE-1394 bus from being illegitimately intercepted and used by an electronic unit other than the intended receiving unit. Therefore, the transmitting unit typically encrypts the data to be transmitted, with a value that is incremented by one at a predetermined time interval (several seconds to several tens of seconds) that is used as an encryption key and adds a flag (ODD/EVEN flag) indicating whether the encryption key used during encryption is an odd or even number. The transmitting unit transmits the encrypted data and further sends the value used as the encryption key during encryption only to the electronic unit (receiving side) serving as the transmission destination at times not synchronized with encrypted-data communication.
When the encrypted data and the encryption key used for encrypting the data are transmitted asynchronously as described above, the received encrypted data does not correspond to the received encryption key at the receiving side in some cases and as a result, the received encrypted data cannot be decrypted.
The present invention has been made in consideration of the above situation. Accordingly, it is an object of the present invention to allow encrypted data to be decrypted with the use of a corresponding encryption key received asynchronously with the encrypted data by updating the received encryption key according to a predetermined method.
The foregoing object is achieved in one aspect of the present invention through the provision of a receiving apparatus for receiving encrypted data encrypted by an encryption key updated periodically that includes an obtaining means for obtaining an initial value of the encryption key; generating means for generating a decryption key according to the initial value of the encryption key obtained by the obtaining means; receiving means for receiving the encrypted data; reading means for reading a flag attached to the encrypted data received by the receiving means; detecting means for detecting the change and the polarity of the change of the flag read by the reading means; updating means for updating the decryption key generated by the generating means in synchronization with the change of the flag detected by the detecting means and in response to the polarity of the change of the flag; storage means for storing the number of the decryption keys updated by the updating means corresponding to the number of the states of the flag; and decrypting means for decrypting the encrypted data received by the receiving means by the use of the decryption key corresponding to the flag read by the reading means among the number of the decryption keys stored by the storage means corresponding to the number of the states of the flag.
The foregoing object is achieved in another aspect of the present invention through the provision of a receiving method for a receiving apparatus for receiving encrypted data encrypted by an encryption key updated periodically, including an obtaining step of obtaining the initial value of the encryption key; a generating step of generating a decryption key according to the initial value of the encryption key obtained in the obtaining step; a receiving step of receiving the encrypted data; a reading step of reading a flag attached to the encrypted data received in the receiving step; a detecting step of detecting the change and the polarity of the change of the flag read in the reading step; an updating step of updating the decryption key generated in the generating step in synchronization with the change of the flag detected in the detecting step and in response to the polarity of the change of the flag; a storage step of storing the number of the decryption keys updated in the updating step corresponding to the number of the states of the flag; and a decrypting step of decrypting the encrypted data received in the receiving step by the use of the decryption key corresponding to the flag read in the reading step among the number of the decryption keys stored in the storage step corresponding to the number of the states of the flag.
The foregoing object is achieved in still another aspect of the present invention through the provision of a medium for making a computer execute a program which receives encrypted data encrypted by an encryption key updated periodically, the program including an obtaining step of obtaining the initial value of the encryption key; a generating step of generating a decryption key according to the initial value of the encryption key obtained in the obtaining step; a receiving step of receiving the encrypted data; a reading step of reading a flag attached to the encrypted data received in the receiving step; a detecting step of detecting the change and the polarity of the change of the flag read in the reading step; an updating step of updating the decryption key generated in the generating step in synchronization with the change of the flag detected in the detecting step and in response to the polarity of the change of the flag; a storage step of storing the number of the decryption keys updated in the updating step corresponding to the number of the states of the flag; and a decrypting step of decrypting the encrypted data received in the receiving step by the use of the decryption key corresponding to the flag read in the reading step among the number of the decryption keys stored in the storage step corresponding to the number of the states of the flag.
In the receiving apparatus, the receiving method, and the program of the medium, the initial value of an encryption key is obtained and a decryption key is generated according to the initial value of the obtained encryption key. Encrypted data is received, a flag attached to the received encrypted data is read, and the change and the polarity of the change of the read flag are detected. The generated decryption key is updated in synchronization with the change of the detected flag and in response to the polarity of the change of the flag, the number of the updated decryption keys corresponding to the number of the states of the flag are stored, and the received encrypted data is decrypted by the use of the decryption key corresponding to the read flag among the number of the stored decryption keys corresponding to the number of the states of the flag. Since the decryption key is updated in synchronization with the change of the detected flag and in response to the polarity of the change of the flag, encrypted data can be decrypted by using the encryption key transferred asynchronously with the encrypted data.
The foregoing object is achieved in yet another aspect of the present invention through the provision of a receiving apparatus for receiving encrypted data encrypted by an encryption key updated periodically, including obtaining means for obtaining the initial value of the encryption key; generating means for generating a decryption key according to the initial value of the encryption key obtained by the obtaining means; receiving means for receiving the encrypted data; reading means for reading a flag attached to the encrypted data received by the receiving means; storage means for storing the number of the decryption keys generated by the generating means corresponding to the number of the states of the flag; decrypting means for decrypting the encrypted data received by the receiving means by the use of the decryption key corresponding to the flag read by the reading means among the number of the decryption keys stored by the storage means corresponding to the number of the states of the flag; updating means for updating the decryption key in synchronization with the change of the flag read by the reading means; checking means for periodically checking that the encryption key matches the decryption key; and changing means for changing the decryption key according to the result of the checking achieved by the checking means.
The foregoing object is achieved in a further aspect of the present invention through the provision of a receiving method for a receiving apparatus for receiving encrypted data encrypted by an encryption key updated periodically, including an obtaining step of obtaining the initial value of the encryption key; a generating step of generating a decryption key according to the initial value of the encryption key obtained in the obtaining step; a receiving step of receiving the encrypted data; a reading step of reading a flag attached to the encrypted data received in the receiving step; a storage step of storing the number of the decryption keys generated in the generating step corresponding to the number of the states of the flag; a decrypting step of decrypting the encrypted data received in the receiving step by the use of the decryption key corresponding to the flag read in the reading step among the number of the decryption keys stored in the storage step corresponding to the number of the states of the flag; an updating step of updating the decryption key in synchronization with the change of the flag read in the reading step; a checking step of periodically checking that the encryption key matches the decryption key; and a changing step of changing the decryption key according to the result of the checking achieved in the checking step.
The foregoing object is achieved in a still further aspect of the present invention through the provision of a medium for making a computer execute a program which receives encrypted data encrypted by an encryption key updated periodically, the program including an obtaining step of obtaining the initial value of the encryption key; a generating step of generating a decryption key according to the initial value of the encryption key obtained in the obtaining step; a receiving step of receiving the encrypted data; a reading step of reading a flag attached to the encrypted data received in the receiving step; a storage step of storing the number of the decryption keys generated in the generating step corresponding to the number of the states of the flag; a decrypting step of decrypting the encrypted data received in the receiving step by the use of the decryption key corresponding to the flag read in the reading step among the number of the decryption keys stored in the storage step corresponding to the number of the states of the flag; an updating step of updating the decryption key in synchronization with the change of the flag read in the reading step; a checking step of periodically checking that the encryption key matches the decryption key; and a changing step of changing the decryption key according to the result of the checking achieved in the checking step.
In the receiving apparatus, the receiving method, and the program of the medium, the initial value of an encryption key is obtained, and a decryption key is generated according to the initial value of the obtained encryption key. Encrypted data is received, a flag attached to the received encrypted data is read, the number of the generated decryption keys corresponding to the number of the states of the flag are stored, and the received encrypted data is decrypted by the use of the decryption key corresponding to the read flag among the number of the stored decryption keys corresponding to the number of the states of the flag. In addition, the decryption key is updated in synchronization with the change of the read flag, whether the encryption key matches the decryption key is checked periodically, and the decryption key is updated according to the result of the checking. The encryption key is periodically checked with the decryption key for a match whereby the decryption key is updated according to the result of the checking, encrypted data can be decrypted by using the encryption key transferred asynchronously with the encrypted data.